package com.jfl.web.service;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.alibaba.dubbo.config.annotation.Reference;
import com.google.common.collect.Maps;
import com.jfl.common.Constants;
import com.jfl.common.EntityFieldKey;
import com.jfl.model.SysDictData;
import com.jfl.system.SysDictDataService;
/**
 * thymeleaf自定义标签
 *  
 * @author  赵炎
 * @version  [V1.00, 2018年12月18日]
 * @since V1.00
 */
@Service("dict")
public class DictService
{
    @Reference(version="${jfl.version}")
    private SysDictDataService sysDictDataService;

    /**
     * 根据字典类型查询字典数据信息
     * 
     * @param dictType 字典类型
     * @return 参数键值
     */
    public List<SysDictData> getType(String dictType)
    {
        Map<String,Object> params = Maps.newHashMap();
        // 实体类字段名  非数据库字段名 使用时注意区分 如果调用封装的queryList这里就使用实体类字段
        params.put(EntityFieldKey.DICT_TYPE, dictType);
        // 状态为启用的
        params.put(EntityFieldKey.STATUS, Constants.STATUS_NORMAL);
        return this.sysDictDataService.queryList(params);
    }

    /**
     * 根据字典类型和字典键值查询字典数据信息
     * 
     * @param dictType 字典类型
     * @param dictValue 字典键值
     * @return 字典标签
     */
    public String getLabel(String dictType, String dictValue)
    {
        Map<String,Object> params = Maps.newHashMap();
        params.put(EntityFieldKey.DICT_TYPE, dictType);
        params.put(EntityFieldKey.DICT_VALUE, dictValue);
        // 状态为启用的
        params.put(EntityFieldKey.STATUS, Constants.STATUS_NORMAL);
        SysDictData data = this.sysDictDataService.queryList(params).get(0);
        return data.getDictLabel();
    }
    
    /**
     * 获取主题样式
     * 
     * @param dictType 字典类型
     * @param dictValue 字典键值
     * @return 字典标签
     */
    public String getTheme(String dictType)
    {
        Map<String,Object> params = Maps.newHashMap();
        params.put(EntityFieldKey.DICT_TYPE, dictType);
        // 状态为启用的
        params.put(EntityFieldKey.STATUS, Constants.STATUS_NORMAL);
        SysDictData data = this.sysDictDataService.queryList(params).get(0);
        return data.getCssClass();
    }
}
